package ar.uba.fi.taller2.cmmiassistant.frontend.respuestas;

import java.awt.Component;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

import javax.swing.JOptionPane;

import ar.uba.fi.taller2.cmmiassistant.controlador.Respuesta;

public class Fracaso implements Respuesta {

	private static final String TITULO = "Error";

	private static final String SEPARADOR_MENSAJE = "\n";

	private Component parent;

	private List<String> mensajes = new LinkedList<String>();

	public Fracaso(Component parent) {
		this.setParent(parent);
	}

	public Fracaso addMensajes(String... mensajes) {

		Collections.addAll(this.getMensajes(), mensajes);
		
		return this;
	}

	private List<String> getMensajes() {

		return this.mensajes;
	}

	public Fracaso desplegar() {

		JOptionPane.showMessageDialog(this.getParent(), this.getMensaje(),
				TITULO, JOptionPane.ERROR_MESSAGE);

		return this;
	}

	private String getMensaje() {

		StringBuffer mensajeConcatenado = new StringBuffer();

		for (String mensaje : this.getMensajes()) {

			mensajeConcatenado.append(mensaje);
			mensajeConcatenado.append(SEPARADOR_MENSAJE);
		}

		return mensajeConcatenado.toString();
	}

	private void setParent(Component parent) {

		this.parent = parent;
	}

	public Component getParent() {

		return this.parent;
	}
}
